1. Field
The present invention is related to computer games, and more specifically to an interactive asynchronous computer game infrastructure.
2. Description of the Related Art
Most current multiplayer computer games fall into two general categories, turn-based and synchronous. In turn-based computer games, much like in a non-computer-based ‘board game’, players alternate between turns, and so interactivity is very limited. Turn-based games are often referred to as a basic form of asynchronous game play, because of their “one player and then another player” nature.
In synchronous computer games, players typically are interactive, playing all at once, and the actions of multiple players are often depicted in a graphical player interface in real-time. Both of these types of computer game play work well when all the players are logged in and playing the game at the same time. However, when players are not able to be logged in at the same time, turn-based games become games played over a longer period of time rather than in real-time, such as over hours, days, or weeks, and synchronous games become very difficult to play. Even when a player is willing to play an on-line game with a randomly paired stranger, there may be times when a player is unable to find an appropriate opponent, such as one at the same skill level, age, location, and the like. So even though a game might be most enjoyable if it had x number of players of a certain level playing online, most games fail to meet this criteria at some point of service, and the quality of the experience drops greatly, causing the life cycle of the game to be shortened.
Players also desire to interact with other people and/or friends in a manner that is, or at least seems to be, “live”. Therefore, there exists a need for a computer game playing method that allows players to be paired up in what looks and feels like real-time play, without the need for all the players to actually be playing simultaneously. In this way, there is a need for a more advanced method of asynchronous game play that allows for an enjoyment level comparable to “true” real-time play, without the limitations imposed by the need for all players to be actively playing the game at the same time.
In addition, even in “true” real time multiplayer game play, users may be matched against pre-recorded games in order to reduce the time that a player has to wait to join a game and/or to increase the amount of apparent user activity. In such cases, the game will typically make calls to a database to obtain game play data. As the number of users increases (such as, for successful online games for example, from tens to hundreds of thousands of concurrent users), the time it takes the database to process the calls increases exponentially, which can lead to undesirable lag times and/or capacity limitations.
Moreover, due to these constraints, system designers may fill buckets of different levels of pre-recorded game play using only a relatively small sample size, and may not be able to optimize the number of sample game plays from the widest variety of actual users, much less store game plays for most, or even all, actual users. A need exists for a more scalable, efficient, and flexible infrastructure to address such challenges.